Communication system

ABSTRACT

A method of populating a store with information identifying user devices capable of communicating in a communications network, includes establishing a communication event from an initiator device to a recipient device via the communication network using information identifying the recipient device; receiving from a user of the initiator device a selection signal indicating that said information identifying the recipient device is to populate the store; and transmitting said information identifying the recipient device from the initiator device to the store via the communication network.

RELATED APPLICATION

This application claims priority under 35 U.S.C. §119 or 365 to GreatBritain, Application No. GB 0624577.3, filed Dec. 8, 2006. The entireteachings of the above application are incorporated herein by reference.

TECHNICAL FIELD

The present invention relates to a method and system for storing datarelating to a called party in a communication system. In particular theinvention relates, but not exclusively to storing called party data in acommunication system.

BACKGROUND

In a communication system a communication network is provided, which canconnect two communication terminals so that the terminals can sendinformation to each other in a call or other communication event.Information may include voice, text, images or video.

Protocols which are used to carry voice signals over the internet arecommonly referred to as Voice over Internet Protocol (VoIP) and may alsobe referred to as Voice over Broadband. VoIP is the protocol used forrouting of voice conversations over the Internet or through any otherIP-based network.

One such communication system to use VoIP is a peer to peercommunication system, in which a plurality of end users can be connectedfor communication purposes via a communications structure such as theinternet. A peer to peer network may also use other protocols tofacilitate the transfer of other data such as text images or video. Thecommunications structure is substantially decentralised with regard tocommunication route switching therein for connecting the end users. Thatis, the end users can establish their own communication routes throughthe structure based on exchange of one or more authenticationcertificates (user identity certificates—UIC) to acquire access to thestructure. The structure includes an administration arrangement issuingthe certificates to the end users. Such a communication system isdescribed in WO 2005/009019.

In a communication system, such as a peer to peer system, clientsoftware is installed on end user devices such as personal computers(PCs) to allow the end users to communicate via the communicationsnetwork. The user interface of the client software can be controlled bythe client to display user facilities and to indicate events occurring,such as an incoming call.

When making a voice call or setting up another type of communicationwith a user device the user may either manually input a numberidentifying the called party or recall a number that has been pre-storedin a list of contacts on the client by the user. If the user does notknow the number it is necessary for the user to look up the numberpossibly using a number look up service before initiating the call.

When making a call to a number that has not been pre-stored by the user,the user may be required to look up the same number more than once if hedoes not remember to save the number in his list of contacts, or torecord the number by other means for example in an address book.

It is therefore an aim of embodiments of the invention to address atleast one of the above identified problems.

SUMMARY

According to a first aspect of the present invention there is provided amethod of populating a store with information identifying user devicescapable of communicating in a communications network, the methodcomprising: establishing a communication event from an initiator deviceto a recipient device via the communication network using informationidentifying the recipient device; receiving from a user of the initiatordevice a selection signal indicating that said information identifyingthe recipient device is to populate the store and transmitting saidinformation identifying the recipient device from the initiator deviceto the store via the communication network.

According to a second aspect of the present invention there is provideda method of storing information relating to a plurality of user devicescapable of communicating in a communications network on a store, themethod comprising;

-   inputting to the store information necessary to establish    communication with the plurality of user devices via the    communications network; generating call statistics relating to the    number of communication events occurring with the plurality of user    device across the communications network; inputting to the store    information relating to the call statistics for the plurality of    user devices.

According to a third aspect of the present invention there is provided amethod of storing the number of communication events initiated byinitiating nodes in a first network to a receiving node in a secondnetwork comprising; transmitting information from an initiating node inthe first network to the receiving node in the second network via agateway; monitoring the information transmitted via the gateway to thereceiving node; determining the number of communication events receivedat the receiving node from the information transmitted via the gateway;and storing the number of communication events received by the receivingnode in a data store.

According to a fourth aspect of the present invention there is provideda method of communicating in a communication network using communicationinformation stored on a data store by a plurality of users comprising;inputting searching criteria to search the data store by a first user;retrieving a set of information from the data store corresponding to thesearching criteria; determining if any information in the set was storedon the data store by a user associated with the first user; displayingany information that was determined as being updated by a userassociated with the first user, to the first user; initiating acommunication event by the first user to a second user using theinformation presented to the first user.

According to a fifth aspect of the present invention there is provided acommunication system comprising; a store arranged to store informationidentifying a plurality of devices capable of communicating in thecommunication system; and an initiator device arranged to initiate acommunication event to a recipient device via the communication systemusing information identifying the recipient device, wherein theinitiator device comprises; receiving means arranged to receive from theuser of the initiator device a selection signal indicating that theinformation identifying the recipient device is to populate the store;and transmitting means arranged to transmit said information identifyingthe recipient device to the store via the communication system.

According to a sixth aspect of the present invention there is providedan initiator device arranged to initiate a communication event to arecipient device in a communication network comprising; input means forinputting information identifying the recipient device to initiate thecommunication event; receiving means arranged to receive from the userof the initiator device a selection signal indicating that theinformation identifying the recipient device is to populate the store;and transmitting means arranged to transmit said information identifyingthe recipient device to the store via the communication network.

According to a seventh aspect of the present invention there is provideda computer program product comprising program code means which whenexecuted on an initiator device implement the steps of; establishing acommunication event from the initiator device to a recipient device viaa communication network using information identifying the recipientdevice; receiving from a user of the initiator device a selection signalindicating that said information identifying the recipient device is topopulate a store; transmitting said information identifying therecipient device from the initiator device to the store via thecommunication network.

According to an eighth aspect of the present invention there is provideda database comprising a plurality of data entries relating to userdevices capable of communicating in a communications network, whereineach entry comprises; information necessary to establish a communicationwith a user device via the communications network; and informationrelating to the number of communication events occurring with the userdevice across the communications network.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the present invention and to show how thesame may be carried into effect, embodiments of the present inventionwill now be described with reference to the following drawings:

FIG. 1 is a schematic representation of a peer to peer communicationsystem in accordance with an embodiment of the present invention;

FIG. 2 shows a client stack;

FIG. 3 shows a page displayed by the client user interface in accordancewith an embodiment of the present invention;

FIG. 4 shows a page displayed by the client user interface in accordancewith an embodiment of the present invention;

FIG. 5 shows a page displayed by the client user interface in accordancewith an embodiment of the present invention;

FIG. 6 shows a page displayed by the client user interface in accordancewith an embodiment of the present invention;

FIG. 7 shows a page displayed by the client user interface in accordancewith an embodiment of the present invention;

FIG. 8 shows a page displayed by the client user interface in accordancewith an embodiment of the present invention;

FIG. 9 shows a page displayed by the client user interface in accordancewith an embodiment of the present invention;

FIG. 10 shows a page displayed by the client user interface inaccordance with an embodiment of the present invention;

FIG. 11 shows an arrangement for measuring call statistics in accordancewith an embodiment of the present invention.

DETAILED DESCRIPTION

Reference will first be made to FIG. 1, in which is shown acommunication system 100, including a packet switched network such as apeer to peer network 104 such as the internet. The communication systemmay also include a circuit switched networks such as PSTN (PublicSwitched Telephone Networks) (not shown). It should be appreciated thateven though the exemplifying communications network shown and describedin more detail uses peer to peer and PSTN networks, embodiments of thepresent invention can be used in any other suitable form of network.

A user device 102 is shown connected to the peer to peer network 104.The user device 102 may be, for example, a personal computer, a gamingdevice, a personal digital assistant, a suitably enabled mobile phone orother device able to connect to the network 104. The user device has auser interface means to receive information from and output informationto a user of the device. In a preferred embodiment of the invention theinterface means of the user device comprises a display means such as ascreen and a keyboard or mouse. The user device 102 is connected to thenetwork 104 via a network port 105, and may be via a cable (wired)connection or a wireless connection. The network 104 may be a networksuch as the Internet.

In accordance with an embodiment of the invention the networkcommunication system includes a data store 126 that stores data relatingto a called party. In one embodiment of the invention the data store 126may be provided on at least one server.

If the user device is connected to the network 104, then it may berunning a client program 112 provided by the operator of thepeer-to-peer system. The client 112 is a software program executed on alocal processor in the user device 102. The client 112 has a number ofdifferent components or layers for implementing various functions,including a protocol layer 402 (FIG. 2) for managing the networkinterface.

Also connected to the network 104 are a backend server 122 and a webapplication 124. The backend server 122 and the web application 124 maybe located within the private network 128 of the operator of thecommunication system. The backend server 122 and the web application 124may be geographically co-located, or may be geographically separated.The backend server 122 is located between the web application 124 andthe network 104, and is responsible for exchanging messages between theweb application 124 and the client 112. The backend server is alsoresponsible for storing a contact list for the client that includes alist of other users of the network that the client 112 has previouslystored as contacts. The backend server 122 and the client software maycommunication using a protocol described in our UK Application Number0608752.2.

FIG. 2 shows a protocol stack for the client 112 according to anembodiment of the present invention. The protocol stack shows anoperating system layer 401, a protocol layer 402, a client engine layer404 and a client user interface layer 406. Each layer is responsible forspecific functions. Because each layer usually communicates with twoother layers, they are regarded as being arranged in a stack as shown inFIG. 2. The operating system layer 401 manages the hardware resources ofthe computer and handles data being transmitted to and from the network.The client protocol layer 402 of the client software communicates withthe operating system 401. Processes requiring higher level processingare passed to the client engine layer 404. The client engine 404 alsocommunicates with the user client user interface layer 406. The clientengine may be arranged to control the client user interface layer 406 topresent information to the user via the user interface means and toreceive information from the user via the user interface means. Thecontrol of the client user interface 406 will be explained in moredetail hereinafter.

A calling user 106 of the user device 102 can communicate with a calleduser 108 of a user device 110 across the network 104. In one embodimentof the invention the client interface is arranged to display a page, ona display provided by the user interface means of the user device 102,to enable the user to initiate the communication. The page may list prestored call data for a plurality of users, otherwise referred to as alist of contacts that correspond to the contact list stored on thebackend server 122. To initiate the communication, the calling user 106can click on the contact listed for the user 108. Alternatively thecalling user 106 can input an identity for the called user, such as atelephone number for the user device 110, or a username for the user 108into the user device 102, using either a keyboard or a mouse to selectalphanumeric buttons displayed on the screen. The client then sets upthe call to the called user 108. The call may be made using VoIP, inaccordance with methods known in the art, such as disclosed in WO2005/009019. The communication may comprise voice, video, instantmessaging (“IM”), short message service (SMS) or a combination thereof.

FIG. 1 shows the called user device 110 connected directly to the peerto peer network 104. In an alternative embodiment the called user device110 may be connected to a different network such as the public switchedtelephone network (“PSTN”) or a mobile network (not shown in FIG. 1). Ifconnected to the PSTN, the called user device 110 may be a fixed linetelephone, and if connected to a mobile network, the called user device110 may be a mobile telephone.

The communication between the calling user device 102 and the calleduser device 110 may be terminated by either the calling user 106 or thecalled user 108. If the call is terminated by the called user of theuser device 110, the client protocol layer 402 of the client running onthe calling user device 102 receives notification from the network thatthe call has been terminated and controls the client engine 404accordingly. Conversely if the calling user of the user device 102terminates the call, the client engine 404 of the client running on thecalling user device 102 may receive an instruction from the client userinterface 406 to terminate the call and will control the client protocollayer 402 to terminate the network connection.

When a call is terminated, the client engine 404 controls the clientuser interface 406 to display a notification to the calling user thatthe call is terminated. The notification may include a timer indicatingthe duration of the call.

In accordance with an embodiment of the invention the client engine mayalso be arranged to control the client user interface to display aselectable option that allows the calling user to save the details ofthe called user 108 on the data store 126 when the call is terminated.The page 300 as shown in FIG. 3, described hereinafter, is one exampleof how the client user interface may display a selectable option thatallows the calling user to save the details of the called user.

In an alternative embodiment of the invention the client engine may bearranged to control the client user interface to allow the calling user106 to save the details of the called user 108 that he is incommunication with during the call. In this embodiment of the inventionthe client user interface may prompt the calling user to input detailsrelating to the called user 108, immediately after connection or apredetermined time after connection.

In a further alternative embodiment of the invention, the client userinterface may be arranged to allow the user to input details of anotheruser to be saved on the data store 126 at anytime.

In accordance with an embodiment of the present invention the details ofthe called user will include the information necessary to establish aconnection via the communication system 100 with the called user device110. The details may also include the postal address of the called user.The information required to contact the called user will hereinafter bereferred to as the contact details of the user.

FIG. 3 shows a page 300 that may be displayed on a display screen of theuser device 102 by the client user interface when the call has beenterminated according to a preferred embodiment of the present invention.

Pages displayed on the display screen may be implemented, for example,using HTML (Hyper Text Markup Language) or code that is specific to theclient software 112.

The page 300 displays the identity of the called user 108, such as thetelephone number of the called user device 110. According to anembodiment of the invention the client user interface is also arrangedto provide a means for storing the called user data in the data store126. In a preferred embodiment of the invention the page 300 displays aselectable link 301 that the user may select to indicate to the clientsoftware that the called user information should be stored to the datastore 126.

In an alternative embodiment of the invention the calling user mayselect a key on a keyboard or other alternative input device, in orderto indicate to the client software that the called user data should bestored on the data store 126.

In one embodiment of the invention the client 112 may be arranged detecta language setting preset by the user, and to only provide means forallowing a user to store called user information on the data store ifthe language is set to an admissible language. In one embodiment anadmissible language is one that uses the Roman alphabet.

When the calling user selects the link 301 the client engine 404 maycontrol the client user interface 406 to allow the details relating tothe user 108 to be input. In accordance with an embodiment of theinvention, contact information used to establish the call between userdevice 102 and user device 110 may be stored in a local memory of theuser device 102. When the user selects the link 301 to indicate that thecalled user details are to be saved, the client 112 is arranged toretrieve the contact information from the memory so that the user is notrequired to manually enter the information again.

FIG. 4 shows a page 500 that may be displayed by the client userinterface 406 in order to save information relating to the user 108 whenthe user 106 selects the link 301. As shown in FIG. 4, the screenincludes data fields 501-506 for entering information relating to theuser 108.

In one embodiment of the invention the client 112 is arranged to searchthe data store 126 with the details of the user 108 to see if an entryalready exists for the user 108. The client engine 404 may control theclient user interface 406 to only display page 500 if the details of theuser 108 are not already present on the data store 126. If the detailsof the user 108 are already present on the data store, the client may bearranged to display an edit page 910 as shown in FIG. 10. The edit pagewill be described in detail hereinafter. In an alternative embodiment,if the client 112 determines that the user details are already stored onthe data store 126 the client interface 406 may be arranged to display apage indicating that the listing already exists.

In accordance with an embodiment of the invention, the client userinterface 406 is controlled by the client 404 engine to populate some ofthe data fields with the contact information stored in the local memoryof the user device 102. For example the phone number data field 502 maybe populated by the client 112 from the contact details stored in thelocal memory of the user device. The country data field 504 may also bepopulated by the client 112 using information which may be determinedfrom the contact information stored in the local memory of the device102 when the call was initiated. In one embodiment the client 112 may bearranged to recognise the country code prefix of the telephone number.Such an arrangement is disclosed in our U.S. application Ser. No.11/416,378.

The user 106 may add further information to the information alreadyadded to the data fields by the client 112. For example, the user mayadd a business name to the business name data field 501. The user mayalso delete information or edit information in a data field alreadypopulated by the client.

In an alternative embodiment of the invention the data fields populatedby the client cannot be deleted by the user 106.

In one embodiment of the invention the user 106 may also add otherinformation to be stored on the data store 126 in addition to contactinformation. For example the user may add keywords in a keyword datafield. The stored keywords may indicate the contact type, e.g.hairdressers, and can be used as searching criteria when searchinginformation stored in the data store 126.

In a further embodiment of the invention the user may input a rating tothe contact information to be stored in the data store 126. For example,if the contact information relates to a business the user may rate thequality of the service offered by the business. In one embodiment therating may be given in the form of a percentage, 100% being a very goodrating and 0% being a very poor rating. In an alternative embodiment ofthe invention the user may select a rating from rating options, forexample the user may select one of excellent, very good, fair or poor.The rating information may then be stored with the contact details ofthe business and displayed with the contact details when the details forthe business are retrieved from the data store 126.

In one embodiment of the invention the user is required to specify arating before the contact information can be stored in the data store126.

In a further embodiment of the invention the user 106 may also include acomment to be displayed with the contact information when the contactinformation is retrieved from the data store 126. The user may type acomment in the comment data field 508.

In accordance with a further embodiment of the invention the client userinterface may also be controlled to allow a user to search for an entryin the data store 126.

A user may access a search entry page by selecting a search tab 601(FIG. 5), selectable link or button provided by the client userinterface. In response to the user selecting the search tab 601, theclient engine 404 is arranged to control the client user interface todisplay a search entry page 602 as shown in FIG. 5.

A user may search the data store by searching for a type of contact in aparticular location. The user may input the type of contact informationrequired, for example ‘hairdressers’ into a contact type data field 603in the search entry page 602. The contact type information entered infield 603 may be used to search the keywords stored on the database. Theuser may also input the required location, for example ‘London’ into thelocation data entry field 604. The user may then select a search button605 to submit the information input in fields 603 and 604 to search thedata store 126.

The search entry page may also be provided with a country data field606. A default country may appear in the country data field 606 when thesearch entry page is displayed. The default country may be set as thecountry in which the user is located. This information may be preset bythe user as part of the user profile information. The user may enter adifferent country in the country data field either manually or byselecting a country from a drop down menu.

The search entry page may also include a list of popular keywords thatare stored on the data store 126. The popular keywords may be displayedas selectable links in field 607. In one embodiment of the invention thepopular keywords displayed are popular keywords that are stored on thedata store 126 for the country identified in the country data field 606.

In one embodiment of the invention the client application is arranged tosearch the data store 126 for a list of the keywords that are associatedwith the greatest number of entries for the identified country and todisplay the results to the search in the field 607 as selectable links.

In an alternative embodiment of the invention the client may be arrangedto search the data store for a list of keywords that are associated withthe most called entries for the identified countries and to display theresults to the search in the field 607.

The user may search the data store by either selecting a keyword in thefield 607 or by selecting the search button 605 to search the data storeusing the information input into data fields 603 and 604. When the usersearches the data store by selecting a keyword displayed as a link, anyinformation entered in data fields 603 and 604 may be ignored.

When the user submits information to search the data store 126 by forexample selecting the search button 605 as described above, the clientengine may be arranged to generate a search data store message inresponse to the users request to search the data store. The search datastore message includes the contact information entered by the user incontact fields 603 and 604. The client protocol layer is then arrangedto transmit the search data store message to the data store 126 via thenetwork 104.

According to one embodiment of the invention, before the contactinformation is sent in the search data store message, the text of thecontent information input by the user in data fields 603 and 604 may bespell checked to ensure that the data store is searched usinginformation that is spelt correctly. The spell checker may beimplemented as an application running on the user device. The spellchecker application may be arranged to detect the language setting ofthe client software installed on the computer in order to search for thecorrect spelling in the language setting of the client software.

The data store 126 is searched using the content information included inthe search data store message sent from the user device. The search datastore message also includes details of the user that transmitted themessage. In one embodiment of the invention the user details transmittedin the search data store message are limited to details that facilitatethe search results to be returned to the user that sent the search datastore message. These details may include a telephone number of the userdevice or the user ID of the user. In an alternative embodiment of theinvention the message may include user profile information such as theage or gender of the user. This information may be used to enhance thesearching criteria for searching the database. For example the resultsof the search may be limited to content uploaded by users in the sameage group.

The entries searched on the data store 1260 may be limited to entriesmatching the location input in the location data entry field. Theentries stored on the data store 126 with content matching the contentinformation provided in the search data store message are retrieved fromthe data store 126 and sent via the network 104 to the user device 102.

When the client engine receives the information from the data store 126,the client engine is arranged to control the client user interface todisplay the entries. The entries may be displayed on a results page.

FIG. 6 shows a results page 701 according to an embodiment of thepresent invention. In one embodiment of the invention only some of theentries received from the data store are displayed. The contact detailsfor each entry displayed on the results page may be stored on a localmemory of the user device 102. The user may select further entries byeither selecting a page number 702 linked to additional results pagesarranged to display further entries. Alternatively the user may scrollthrough the results pages using the left and right arrow buttons 703 and704.

In a preferred embodiment of the invention the data store is arranged tosort the results into a particular order before the results are returnedto the user device 102.

In one embodiment of the invention the results may be sorted by therelevance of the searching criteria. In this embodiment of the inventionthe results are sorted in order of the number of keywords stored for anentry that match the keywords entered in the content type data field 603on the search entry page.

In an alternative embodiment of the invention the results may be sortedby order of the user ratings. In one embodiment the results may besorted by the highest average user rating. In an alternative embodimentthe results may be sorted in order of the entries having the highestpercentage of ‘excellent’ ratings.

In another embodiment of the invention the results may be sorted suchthat the name of each contact is listed alphabetically.

In a further embodiment of the invention the results may be sorted byorder of the number of calls logged to the user identified in eachresult.

In a further embodiment of the invention the results may be sortedaccording to how close the location specified in the contact details ofan entry is to the location specified in the search as entered in thelocation data entry field.

In a further embodiment of the invention the results may be sortedaccording to whether a user specified in the contact details of an entryhas requested to be listed above other entries in the search results. Inone embodiment of the invention the network operator associated with thedata store 126 may approach users specified in the entries stored on thedata store to offer the user this option. A user may then pay to ensurethat they are listed above other entries in the search results.According to this embodiment of the invention the data store may bearranged to store an indication that a user has requested to be listedabove other entries in the search results. The search results may besorted such that users that have requested to be listed in the searchresults appear at the top of the results list above any users that havenot requested this option. In a further embodiment of the invention, theresults may be sorted in order of how much the user has paid to belisted.

According to a further embodiment of the present invention the resultsmay be ordered according to which of the entries have been created orcommented on by users listed in a user's contact list. According to thisembodiment of the invention, the entries that have been created orcommented on by users included in the user's contact list appear at thetop of the results list. According to one embodiment of the invention,the results from the data store 126 are sent to the user device 102 viathe backend server 122. The contact list for the user is stored on thebackend server. The backend server is arranged to compare the searchresults to the user's contact list. If the server 122 determines thatthere are entries that have been either created or commented on by theany of the users listed in the user's contact list, the server ordersthe results such that those entries appear at the top of the resultslist. The search results are then forwarded to the user device.

In alternative embodiment of the present invention the client 122 may bearranged to determine if there are any results that have been eithercreated or commented on by the any of the users listed in the user's 106contact list and to sort the results accordingly.

In a further alternative embodiment of the invention details of theuser's contact list may be included in the content information providedin the search data store message. The results retrieved from the datastore 126 may then only include results created or commented on by userslisted in the user's 106 contact list.

In a further embodiment of the invention the search results may beordered according to any combination of the above identified criteria.For example the location criteria may be combined with the call volumecriteria, such that the results found for a particular location arelisted in order of the most called entries.

This list is not exhaustive and is only intended as an example.

In an embodiment of the invention the user may select the criteria forordering the results of the data store search.

In one embodiment of the invention, call statistics are monitored foreach entry on the data store so that the data store may sort the resultsof a data store search by order of the most called. Call statistics maybe collected by a Call Data Collector 130 (see FIG. 11). The Call DataCollector may form part of the data store 126. Alternatively the CallData Collector 130 may be positioned at a separate location in thenetwork to the data store 126. In one embodiment of the invention thecall statistics relate to the number of communication events, such asvoice calls or text communications, occurring for a particular userdevice. In another embodiment of the invention the call statistics mayalso include information relating to the duration of a communication,for example the duration of a voice call.

FIG. 11 shows the called user device 110 connected to a gateway 128. Inthis embodiment of the invention the user device 110 is connected to aseparate network from the network 104. For example the user device 110may be connected to a PSTN network. The gateway 128 enables thecommunication to be established between the network 104 and the networkin which the user device 110 is located.

The call data collector 130 is arranged to count the number ofcommunication events, such as calls, that occur for each user stored onthe data store 126. The call statistics for each user listed on the datastore are periodically sent to the data store 126 from the call datacollector 130. On receipt of information transmitted from the call datacollector 130, the data store 126 updates the entry for the called userwith the call statistics.

In one embodiment of the invention the call data collector 130 includesa memory for storing a list of each called user device stored on thedata store 126. The data store 126 transmits entry updates to the calldata collector 130. The data store may transmit entry updates to thecall data collector 130 each time an entry relating to a new called useris created, or at periodic intervals.

In one embodiment of the invention the call data collector 130 isarranged to count the number of calls made to a particular user deviceby counting the number of call data records (CDRs) that are generatedfor that user device. CDRs are records that are generated upon eachcalling event to facilitate charging in a communication network. CDRsare known in the art and will therefore not be described further herein.

In one embodiment of the invention the call data collector 130 analyseseach CDR that is transmitted from the gateway 128 and checks its memoryto identify if the CDR relates to a call made to a user device that isstored on the data store. If the CDR relates to a user device that isstored on the data store the call data collector increments the countfor the number of calls to that number by 1.

In an embodiment of the invention only calls having duration above apredetermined time threshold are counted. In one embodiment only callslasting 10 seconds or longer are counted.

In a further embodiment of the invention, calls from the same user to anumber listed on the data store may only be counted once during apredetermined period. In one embodiment this period is 24 hrs.

In a further embodiment of the invention a plurality of call datacollectors may be connected to the data store 126. In an embodiment ofthe invention all calls made from network 104 are monitored.

According to an embodiment of the invention the results page 701 mayallow the user to search the data store again with a new criteria.Therefore the results page may also include a content type data field603′ and a location data field 604.

When the results of the search are displayed, the client interface isarranged to allow the user to establish a communication with one of thecalled users listed in the results page. In a preferred embodiment ofthe invention the communication is a voice call. In alternativeembodiments of the invention the communication may be a text message,instant message or another type of communication. In one embodiment ofthe invention the user may establish a call by selecting a call button707 provided in relation to an entry 708 as shown in FIG. 6. On theselection of a call button 707 the client is arranged to establish acall with the contact 708 associated with the call button 707 using thecontact details retrieved from the data store 126.

In one embodiment the user may store the contact details of an entrylisted on the results page as a contact. If client interface receives asignal from the user to indicate that the contact details of aparticular entry are to be stored as a contact the client is arranged tocopy the contact details for that particular entry into a permanentmemory store such as a ROM (read only memory) local to the user device102.

The user may access the contact information entry page 500 from theresults page by selecting a link 705 on the search results page 701. Theuser may decide to add new called user details when it is apparent thatan expected contact, for example the user's favourite business, does notappear in the search results.

The user may access a details page for each entry displayed on theresults page 701. The details page may be viewed by selecting a detailslink for a particular entry on the search results page. When the link isselected the client is arranged to retrieve details information for aparticular entry from the data store 126. FIG. 8 shows an example of adetails page 901 for a particular entry. The details page 901 may showthe comments provided by other users that have previously called thecontact.

In one embodiment of the invention the client user interface may providethe user with means for reporting any misuse of the data store 126 suchas the storage of abusive comments or misleading information. As shownin FIG. 8 the details page 901 may include a selectable link 902 toallow the user to report any misuse of the data store. The user mayselect link 902 to access a page to allow the user to input any commentsrelating to the misuse. A ‘report misuse’ page 904 is shown in FIG. 9.As shown, the user may input a description of the misuse in field 905.Alternatively or additionally the user may indicate the reason for themisuse using the data field 907 that is populated using a drop downmenu. The user may then submit the description to the operator byselecting a submit button 906. When the user selects the submit button906, information included in the data fields on page 904 may be sent tocustomer services in a message.

In another embodiment of the invention the client user interface mayprovide the user with means for editing the information stored inrelation to an entry on the data store 126. The details page 901 shownin FIG. 8 may include a selectable link 907 to allow the user to modifythe information shown on the details page 901. The user may select thelink 907 to access an editing page 910 shown in FIG. 10.

The editing page 910 includes data fields for updating the contactinformation for the selected entry on the data store 126. The datafields may include a business name data field 501′, a telephone numberdata field 502′ and location data fields 503′, 504′, 911, 912, 506′.

In a preferred embodiment of the invention, when the user accesses theedit page 910 the data fields are populated with the data currentlystored on the data store. The user may then edit the information in thedata field.

In another embodiment of the invention the user may not edit theinformation in the business name data field 501′ or in the phone numberdata field 502′. This prevents fraudulent use of the editing feature.

The editing page 910 may also be provided with a keyword data field 507′for entering additional keywords.

Once the user has edited the information in the data fields the data maybe sent to the data store to update the entry for that contact byselecting a submit button 914 provided on the editing page 910.

If the data store 126 does not contain any entries that match thesearching criteria entered by the user in the content type data field603, 603′, and the location data field 604, 604′, the data store maysend a response to the client engine indicating that the search criteriadid not match any listings. On receipt of this notification the clientengine may control the client user interface to display a notificationto the user that no results were found.

FIG. 7 shows an example of a page 801 displayed by the client userinterface 406 when no results match the searching criteria.

The client user interface may be arranged provide the user with theoption of searching an alternative data store provided by an authoriseddata store provider. A data field 803 is shown on the page 801 to allowthe user to input a term to search another data store. According to anembodiment of the invention the client 112 may be arranged to populatethe search data field 803 with the search terms previously input by theuser on the search entry page 602.

While this invention has been particularly shown and described withreferences to example embodiments thereof, it will be understood bythose skilled in the art that various changes in form and details may bemade therein without departing from the scope of the inventionencompassed by the appended claims.

1. A method of populating a store with information identifying userdevices capable of communicating in a communications network, the methodcomprising: establishing a communication event from an initiator deviceto a recipient device via the communication network using informationidentifying the recipient device; receiving from a user of the initiatordevice a selection signal indicating that said information identifyingthe recipient device is to populate the store; and transmitting saidinformation identifying the recipient device from the initiator deviceto the store via the communication network.
 2. A method as claimed inclaim 1 wherein the store stores the information identifying therecipient device together with associated information.
 3. A method asclaimed in claim 2 wherein the information identifying the recipient andthe associated information are stored as an entry in the store.
 4. Amethod as claimed in claim 3 wherein each entry in the store is editableby a plurality of users.
 5. A method as claimed in claim 2 wherein theuser of the initiator device inputs the associated information at theinitiator device.
 6. A method as claimed in claim 2 wherein theassociated information is provided from a database located in thecommunications network.
 7. A method as claimed in claim 6 wherein thedatabase counts the number of communication events occurring across thecommunications network for a recipient device.
 8. A method as claimed inclaim 1 wherein the user of the initiator device inputs the informationidentifying the recipient device at the initiator device in order toestablish a call.
 9. A method as claimed in claim 2 wherein theassociated information is transmitted to the store together with theinformation identifying the recipient device.
 10. A method as claimed inclaim 2 wherein the associated information includes rating information.11. A method as claimed in claim 2 wherein the associated informationincludes location information.
 12. A method as claimed in claim 2wherein the associated information includes call statistics.
 13. Amethod as claimed in claim 2 wherein the associated information includespayment information.
 14. A method as claimed in claim 3 wherein theassociated information includes an indication of whether one entry is tobe listed above other entries.
 15. A method as claimed in claim 1wherein the information identifying the recipient comprises a telephonenumber.
 16. A method as claimed in claim 1 further comprisingcontrolling the initiator device to provide the user with means forgenerating the selection signal when the communication event to therecipient device is terminated.
 17. A method as claimed in claim 1further comprising controlling the initiator device to provide the userwith means for generating the selection signal during the communicationevent.
 18. A method as claimed in claim 1 further comprising detecting alanguage setting stored on the initiator device; determining if thelanguage setting is a permissible language; and providing the user withmeans for generating the selection signal if it is determined that thelanguage setting is a permissible language.
 19. A method as claimed inclaim 2 wherein the associated information includes information relatingto the number of times a call is made to a recipient device.
 20. Amethod as claimed in claim 19 wherein the information relating to thenumber of times a call is made to a recipient device is determined bycounting the number of call data records issued in the network relatingto the recipient device.
 21. A method of storing information relating toa plurality of user devices capable of communicating in a communicationsnetwork on a store, the method comprising: inputting to the storeinformation necessary to establish communication with the plurality ofuser devices via the communications network; generating call statisticsrelating to the number of communication events occurring with theplurality of user device across the communications network; inputting tothe store information relating to the call statistics for the pluralityof user devices.
 22. A method as claimed in claim 21 wherein theinformation stored in relation to each user device is stored as an entryin the store.
 23. A method as claimed in claim 22 further comprisingretrieving a plurality of entries from the store.
 24. A method asclaimed in claim 23 further comprising sorting the entries retrievedfrom the store in dependence on the number of communication eventsoccurring with each user device.
 25. A method as claimed in 21 whereinthe communications network comprises a first network and a secondnetwork.
 26. A method as claimed in claim 25 wherein the call statisticsrelate to the number of communication events occurring between the firstnetwork and the second network.
 27. A method of storing the number ofcommunication events initiated by initiating nodes in a first network toa receiving node in a second network comprising: transmittinginformation from an initiating node in the first network to thereceiving node in the second network via a gateway; monitoring theinformation transmitted via the gateway to the receiving node;determining the number of communication events received at the receivingnode from the information transmitted via the gateway; and storing thenumber of communication events received by the receiving node in a datastore.
 28. A method of communicating in a communication network usingcommunication information stored on a data store by a plurality of userscomprising: inputting searching criteria to search the data store by afirst user; retrieving a set of information from the data storecorresponding to the searching criteria; determining if any informationin the set was stored on the data store by a user associated with thefirst user; displaying any information that was determined as beingupdated by a user associated with the first user, to the first user;initiating a communication event by the first user to a second userusing the information presented to the first user.
 29. A communicationsystem comprising: a store arranged to store information identifying aplurality of devices capable of communicating in the communicationsystem; an initiator device arranged to initiate a communication eventto a recipient device via the communication system using informationidentifying the recipient device, wherein the initiator device comprisesreceiving means arranged to receive from the user of the initiatordevice a selection signal indicating that the information identifyingthe recipient device is to populate the store; and transmitting meansarranged to transmit said information identifying the recipient deviceto the store via the communication system.
 30. An initiator devicearranged to initiate a communication event to a recipient device in acommunication network comprising: input means for inputting informationidentifying the recipient device to initiate the communication event;receiving means arranged to receive from the user of the initiatordevice a selection signal indicating that the information identifyingthe recipient device is to populate the store; and transmitting meansarranged to transmit said information identifying the recipient deviceto the store via the communication network.
 31. A computer programproduct comprising program code means which when executed on aninitiator device implement the steps of: establishing a communicationevent from the initiator device to a recipient device via thecommunication network using information identifying the recipientdevice; receiving from a user of the initiator device a selection signalindicating that said information identifying the recipient device is topopulate a store; transmitting said information identifying therecipient device from the initiator device to the store via thecommunication network.
 32. A database comprising a plurality of dataentries relating to user devices capable of communicating in acommunications network, wherein each entry comprises: informationnecessary to establish a communication with a user device via thecommunications network; and information relating to the number ofcommunication events occurring with the user device across thecommunications network.
 33. A database as claimed in claim 32 whereinthe communications network comprises a first network and a secondnetwork.
 34. A database as claimed in claim 33 wherein the number ofcommunication events occurring with the user device across thecommunications network relate to the number of communication eventsoccurring between the first network and the second network.